package com.itheima.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.bean.Dish;
import com.itheima.dto.DishDto;
import org.springframework.transaction.annotation.Transactional;

public interface DishService extends IService<Dish> {

	/**
	 * 保存菜品基本信息和口味信息到数据库
	 *
	 * @param dishDto 封装菜品基本信息和口味信息数据
	 */
	//添加事务管理  SpringBoot项目中添加事务管理：1.在接口方法上打上@Transactional注解 2.启动类打上注解@EnableTransactionManagement 启用事务注解驱动支持
	@Transactional
	void saveWithFlavor(DishDto dishDto);

	/**
	 * 根据id查询菜品及其口味信息封装到DishDto对象
	 *
	 * @param id
	 * @return
	 */
	DishDto findById(Long id);

	/**
	 * 修改菜品基本信息及其口味信息
	 *
	 * @param dishDto
	 */
	@Transactional
	void updateWithFlavor(DishDto dishDto);

	/**
	 * 停售启售|批量停售启售
	 *
	 * @param ids
	 * @param status
	 */
	void changeStatusByIds(Long[] ids, Integer status);

	/**
	 * 根据菜品id删除|批量删除
	 *
	 * @param ids
	 * @return
	 */
	boolean deleteByIds(Long[] ids);
}
